﻿using System;
using System.Net.Sockets;
namespace Engine.NetClasses
{
    public delegate void DataRead (IAsyncClient client);
    public interface IAsyncClient
    {
        Helpers.BlowFish CR { get; set; }
        PacketsBilder[] GetFromClient();
        PacketsBilder[] GetFromServer();
        int CountFromClient { get; }
        int CountFromServer { get; }
        DataReader Reader { get; set; }
        long nextTimePing { get; set; }
        uint ID { get; set; }
        object Locker { get; }
        void SetFromClient(PacketsBilder FromClient);
        void SetFromServer(PacketsBilder FromServer);
        System.Net.Sockets.Socket Socket { get; set; }
        bool Ping{ get; set; }
        int PingTime{ get; set; }
        bool needDisconect { get; set; }
        void Read(SocketAsyncEventArgs e);
        event DataRead onDataRead;
        ulong SessionKey { get; set; }
        object ClientObject { get; set; }
        BaseServer Server { get; set; }
    }
}
